/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package td3.Modele;

import java.util.Observable;
import td3.Vue.FenetrePrincipale;

/**
 *
 * @author fredericdasilva
 */
public abstract class Jeu extends Observable implements Runnable{
      public Plateau P;
      public Joueur J1;
      public Joueur J2;
      private volatile Thread currentThread = null;
       public Jeu(Joueur a, Joueur b){
     
        //P = new PlateauMorpion();
        //P.initialiser();
        
        J1= a;
        J2= b;
       //f.FenetrePrincipale(this.P.largeur, this.P.longueur);
       
    }
       
        public abstract boolean partieTerminee();
        
        public abstract boolean coupPossible(Coup coup);
        
        public abstract void jouerPartie();
        
        public abstract void quiAGagne();
        
        public abstract boolean AGagne();
        
        public abstract String quiStringAGagne() ;
        
        public abstract Joueur joueurSuivant();
        
        public abstract String nomJoueurSuivant();
        public abstract Joueur quelleJoueur(int id);
        
        public abstract void jouerCoupJeu(Coup c, int idJeu);

        public abstract void jouerCoupJeuJoueurHumain(Coup c, int idJeu);
        
        public abstract void jouerJeuFenetre();
        
        public abstract void run();
        
        public abstract void arreter();
                
        public void update(FenetrePrincipale f, Coup c){
            
        }
        
//    @Override
//        public void setChanged(){
//            
//        }
}



